﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace CalculatorLogic
{
    /// <summary>
    /// An object representing the axis of a graph for a graphic calculator
    /// </summary>
    public class Axis
    {
        #region fields
        /// <summary>
        /// the width of the axis
        /// </summary>
        double width;
        /// <summary>
        /// the height of the axis
        /// </summary>
        double height;
        /// <summary>
        /// the scale for the axis graph intervals
        /// </summary>
        double scale;
        /// <summary>
        /// the color of the axis
        /// </summary>
        Color color;

        /// <summary>
        /// the name of the axis, such as x or y 
        /// </summary>
        string name;

        /// <summary>
        /// the min of the axis
        /// </summary>
        double min;
        /// <summary>
        /// the max of the axis
        /// </summary>
        double max;

        Point startPoint;
        Point endPoint;

        #endregion fields

        #region Properties
        /// <summary>
        /// Get the Width of the Axis
        /// </summary>
        public double Width
        {
            get { return width; }
        }
        /// <summary>
        /// Get the Height of the Axis
        /// </summary>
        public double Height
        {
            get { return height; }
        }
        /// <summary>
        /// Get the scale interval of the axis
        /// </summary>
        public double Scale
        {
            get { return scale; }
        }
        /// <summary>
        /// Get the Color of the axis
        /// </summary>
        public Color Color
        {
            get { return color; }
        }
        /// <summary>
        /// Get the name of the axis, x or y
        /// </summary>
        public string Name
        {
            get { return name; }
        }

        /// <summary>
        /// get the min value of the axis
        /// </summary>
        public double Min
        {
            get { return min; }
            
        }

        /// <summary>
        /// Get the max value of the axis
        /// </summary>
        public double Max
        {
            get { return max; }
            
        }

        public Point StartPoint
        {
            get { return startPoint; }
        }

        public Point EndPoint
        {
            get { return endPoint; }
        }

        #endregion Properties

        #region Constructors
        

        public Axis(double min, double max, double scale, Color color)
        {
            this.min = min;
            this.max = max;
            this.scale = scale;
            this.color = color;
        }

        #endregion Constructors

        #region PublicMethods

        public void SetName(string name)
        {
            this.name = name;
        }

        public void SetStartPoint(Point startPoint)
        {
            this.startPoint = startPoint;
        }

        public void SetEndPoint(Point endPoint)
        {
            this.endPoint = endPoint;
        }

        #endregion PublicMethods

        #region privateMethods


        #endregion privateMethods
    }
}
